insert overwrite table jms_dm.dm_taking_timely_summary_hi
select
     sender_network_code      --寄件网点编码
    ,sender_network_name      --寄件网点名称
    ,sender_fran_code         --寄件加盟商编码
    ,sender_fran_name         --寄件加盟商名称
    ,sender_agent_code        --寄件代理区编码
    ,sender_agent_name        --寄件代理区名称
    ,sender_region_code       --寄件大区编码
    ,sender_region_name       --寄件大区名称
    ,sender_area_code         --寄件区编码
    ,sender_area_name         --寄件区名称
    ,sender_city_code         --寄件市编码
    ,sender_city_name         --寄件市名称
    ,sender_province_code     --寄件省编码
    ,sender_province_name     --寄件省名称
    ,sender_staff_code        --寄件业务员编码
    ,sender_staff_name        --寄件业务员名称
    ,customer_code            --客户编码
    ,customer_name            --客户名称
    ,order_source_code        --订单来源编码
    ,order_source_name        --订单来源名称
    ,order_source_group_code  --订单来源分类编码
    ,order_source_group_name  --订单来源分类名称
    ,diff_code                --问题件类型编码
    ,diff_name as diff_type   --问题件类型名称
    ,cast((unix_timestamp(taking_time) - unix_timestamp(input_time)) /60 /60 as decimal(15,2)) as diff_time --当前站点与下一站实际时间差(小时)'
    ,count(case when if_dispatch = 0 then order_no end) as wdd_cnt --散单未调度量
    ,count(case when if_dispatch = 1 then order_no end) as ydd_cnt --散单已调度量
    ,count(case when if_dispatch = 1 and pick_time is null then order_no end) as wl_cnt --未揽量
    ,count(case when if_dispatch = 1 and pick_time is not null then order_no end) as yl_cnt --已揽量
    ,count(case when pick_time is null and if_tml_collect = 1 then order_no end) as cs_wl_cnt --超时未揽量
    ,count(case when pick_time is not null and if_tml_collect = 1 then order_no end) as cs_yl_cnt --超时已揽量
    ,sum(if_taking_diff) as taking_diff_cnt --取件问题件票数
    ,count(case when if_taking_miss = 1 then order_no end) as taking_miss_cnt --漏扫票数
    ,count(1) as all_cnt -- 总量
    ,count(case when if_tml_collect = 0 then order_no end) as timely_cnt --揽收及时量
    ,count(case when if_tml_collect = 1 then order_no end) as untimely_cnt --未及时揽收量
    ,dt
from jms_dm.dm_taking_timely_detail_hi
where dt between date_sub('{{ execution_date | cst_ds }}',1) and '{{ execution_date | cst_ds }}'
group by sender_network_code      --寄件网点编码
        ,sender_network_name      --寄件网点名称
        ,sender_fran_code         --寄件加盟商编码
        ,sender_fran_name         --寄件加盟商名称
        ,sender_agent_code        --寄件代理区编码
        ,sender_agent_name        --寄件代理区名称
        ,sender_region_code       --寄件大区编码
        ,sender_region_name       --寄件大区名称
        ,sender_area_code         --寄件区编码
        ,sender_area_name         --寄件区名称
        ,sender_city_code         --寄件市编码
        ,sender_city_name         --寄件市名称
        ,sender_province_code     --寄件省编码
        ,sender_province_name     --寄件省名称
        ,sender_staff_code        --寄件业务员编码
        ,sender_staff_name        --寄件业务员名称
        ,customer_code            --客户编码
        ,customer_name            --客户名称
        ,order_source_code        --订单来源编码
        ,order_source_name        --订单来源名称
        ,order_source_group_code  --订单来源分类编码
        ,order_source_group_name  --订单来源分类名称
        ,order_source_group_name  --订单来源分类名称
        ,order_source_group_name  --订单来源分类名称
        ,diff_code                --问题件类型编码
        ,diff_name                --问题件类型名称
        ,cast((unix_timestamp(taking_time) - unix_timestamp(input_time)) /60 /60 as decimal(15,2))
        ,dt
distribute by pmod(hash(rand()),30);


